package businesslogicservice;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.ArrayList;
import po.approvepo.LogOffPO;
import po.userpo.Student;
import po.userpo.Teacher;
import po.userpo.UserID;
import po.userpo.UserPO;
import vo.approvevo.RequestVo;
import vo.uservo.ChangePasswordVO;
import vo.uservo.LoginVO;
import vo.uservo.RegisterStuVO;
import vo.uservo.ShowStudentVO;
import Enum.Faculty;
import Enum.Period;
import Enum.ResultMessage;
import Enum.Term;

public interface UserControllerImpli extends Remote{
	public ResultMessage changemajor(RequestVo requestVo) throws RemoteException;
    
    public ResultMessage changepassword(ChangePasswordVO vo) throws RemoteException;
    
    public boolean checkPassword(LoginVO vo) throws RemoteException;
    
    public ArrayList<Student> showstudent(ShowStudentVO vo) throws RemoteException;
    
    public ResultMessage register(RequestVo vo,ArrayList<RegisterStuVO> po) throws RemoteException;
 
    public ResultMessage logOff(RequestVo   vo,ArrayList<LogOffPO> list) throws RemoteException;
    
    public UserPO getUser(UserID userID) throws RemoteException;
    
    public ArrayList<RegisterStuVO> getRegisterList(Faculty f ,String appliName) throws RemoteException;
    
    public  ArrayList<LogOffPO> getLogOffList(Faculty f , String appliID) throws RemoteException;

    public ArrayList<Teacher> getTchList(Faculty f) throws RemoteException;
    
    public boolean CheckPeriod(Period period) throws RemoteException;
    
    public Term getTerm(int registerTime) throws RemoteException;
}